PCA算法用于人脸降维Python实现(吴恩达机器学习作业)

您所在的位置:网站首页 pca 人脸识别 PCA算法用于人脸降维Python实现(吴恩达机器学习作业)

PCA算法用于人脸降维Python实现(吴恩达机器学习作业)

2024-07-11 08:19| 来源: 网络整理| 查看: 265

PCA算法用于人脸降维Python实现 题目要求 步骤 数据集 PCA 实验过程 Python实现 问题和心得 问题 心得

题目要求

采用PCA算法对数据进行降维。

步骤 利用PCA对人脸进行降维,从1024维降到100维: (1) 均值归一化。 计算出每一维特征的均值𝜇𝑗 ,令 𝑥𝑗 = 𝑥𝑗 − 𝜇𝑗。如果特征是在不同的数量级上,还需要将其除以标准差。 (2) 计算协方差矩阵(covariance matrix)𝛴。 ∑ = 1/𝑚 ∑𝑖=1𝑛 𝑋𝑇𝑋,X中每一行是一个样本; m是样本数;X的大小是mn; ∑ 的大小是nn。 (3) 计算协方差矩阵𝜮的特征向量。 使用SVD分解:∑ = 𝑼𝑺𝑽T,直接使用如下代码:U, sigma, VT=np.linalg.svd(data) (4) 计算出主成分。 (5) 将数据投影到主成分方向。 𝒛 (𝒊) = 𝑼𝒓𝒆𝒅𝒖𝒄𝒆 𝑻 ∗ 𝒙 (𝒊),注意:此处的 𝒙(𝒊) 是均值归一化后的。 进行数据恢复,观察仅使用前100维主成分恢复得到的人脸图像。 数据集

链接:ex7faces.mat 提取码:mjy7

PCA

主成分分析用于数据降维。

实验过程

原始的人脸大小32×32=1024维,一行数据是一个人脸, 将数据reshape成32×32,显示人脸图像其中的前100张人脸图: 在这里插入图片描述 显示其单通道的灰度图看看: 在这里插入图片描述 将其降到100维后再次复原,复原图像如下图所示。可以看到即使仅仅保留了100个特征,但是图像的大致信息都保留了下来,尽管变得“模糊”了,但是人脸的主要信息没有丢失,丢失的是图像中的一些很细节的东西,降维后并没有对我们识别人脸产生重大影响,但是数据量却减少了很多,能够大大降低计算开销。 在这里插入图片描述 展示其单通道的灰度图: 在这里插入图片描述



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3